Session Initiation Protocol (SIP) is an open signaling protocol for establishing many kinds of real-time communication sessions. Examples of the types of communication sessions that may be established using SIP include voice, video, and/or instant messaging. These communication sessions may be carried out on any type of communication device such as a personal computer, laptop computer, Personal Digital Assistant (PDA), cellular phone, IM client, IP phone, traditional telephone, and so on.
One key feature of SIP is its ability to use an end-user's Address of Record (AOR) as a single unifying public address for all communications. Thus, in a world of SIP-enhanced communications, a user's AOR becomes their single address that links the user to all of the communication devices associated with the user. Using this AOR, a caller can reach any one of the user's communication devices, also referred to as User Agents (UAs) without having to know each of the unique device addresses or phone numbers.
With reference to FIG. 1, a communication system 100 comprising a primary service 104 interacting with a number of SIP devices (e.g., a SIP endpoint 108 or User Agent (UA) and/or a SIP/PSTN Gateway 112) will be discussed in accordance with embodiments of the prior art. The SIP/PSTN Gateway 112 may be utilized to connect other non-SIP enabled devices such as a standard telephone 116 to the primary service 104.
The primary service 104 provides one or more features (e.g., SIP features and functions, PBX features and functions, etc.) to the endpoints connected thereto. A SIP primary service is only one example of the kinds of primary services that may be provided to communication endpoints by a central server or the like. The primary service 104 may be maintained and executed by one or more servers. As an example, the primary service 104 may be executed by a SIP server working in conjunction with a call server. Alternatively, the primary service 104 may be executed by a single server as is depicted in FIG. 1. As can be appreciated by one skilled in the art, the types and/or number of devices used to provide the primary service 104 may vary depending upon the nature of the primary service.
The SIP endpoint 108 may comprise any type of SIP-enabled communication device such as a SIP enabled phone, a personal computer, a laptop, a portable electronic mail retrieval device, or the like. The standard endpoint 116 may correspond to an analog or digital phone or any other traditional communication device.
One downside to this particular communication system 100 configuration is that if additional features need to be made available to the SIP Phones 108, the SIP/PSTN Gateway 112, or other SIP devices connected to the primary service 104, then an enhancement (or new release) of the primary service 104 needs to be provided/installed. Upgrading the primary service 104 itself can be very time consuming and lag times for such upgrades can be as long as a year or more. These lag times often do not meet a customer's time-to-market needs. The long lag time of primary service 104 enhancements is usually because the primary service 104 has to enter a product road map. A further risk to some customers is that their requested feature might not even make it into the road map as the feature to be added might be considered too specific to a single customer to be part of the primary service 104.
Operations of the communication system 200 will now be discussed in connection with FIGS. 2 and 3. Registration of the endpoints 208a and/or 208b with the primary service 204 will now be described with reference to FIG. 2. During registration with the primary service 204, the first 208a and/or second SIP endpoint 208b sends a REGISTER message to primary service 204. Along with the REGISTER message directed to the primary service 204, the first SIP endpoint 208a may send details of the SIP Address (public name, e.g.: sip:ual@avaya.com) and the Contact Address (physical location, e.g.: sip:ual@1.1.1.1:5060) to the primary service 204.
The OutboundProxy configuration attribute in the endpoint 208a indicates where the primary service 204 is located (e.g., IP: 3.3.3.3). The OutboundProxy is a single phone configuration parameter that indicates where SIP messages such as the REGISTERs and INVITES should be sent. One of the functions of the primary service 204 is to work as a Registrar for the endpoints 208a, 208b. The primary service 204 can then capture the registration information and store it in a database 212. This database 212 (e.g., a registrar table) will then contain a mapping between the public name (e.g.: sip:ual@avaya.com) and the physical location (e.g.: sip:ual@1.1.1.1:5060).
In addition to acting as a registrar, the primary service 204 may support SIP call handling functions for the endpoints 208a, 208b. More specifically, FIG. 3 depicts a communication system 300 where a first endpoint 308a initiates a call to a second endpoint 308b. The first endpoint 308a may send an INVITE to the second endpoint 308b. The first endpoint 308a does not know where the second endpoint 308b is physically located, but it does know the public address of the second endpoint 308b (e.g.: sip:ua2@avaya.com).
Using the OutboundProxy configuration (IP: 3.3.3.3), the first endpoint 308a sends the INVITE to the primary service 304, so that the primary service 304 can resolve the public address of the second endpoint 308b. Upon receiving the INVITE, the primary service 304 resolves the public address of the second endpoint 308b into sip:ua2@2.2.2.2:5060 by performing a database lookup of its Registrar Table 312.
The primary service 304 then forwards the INVITE to the second endpoint 308b via the address determined during the database lookup. It should be noted that the ReqURI now contains the proper physical location of the second endpoint 208b, and the Contact Address contains the address of the primary service 204. This is to force future messages from either endpoint 208 to be sent back to primary service 204 so it stays in the signaling path.